This specification relates to computer server systems.
A server receives requests from various users and allocates computing resources, e.g., memory and processing time, to handle the requests in a timely manner. For example, a web server providing a search service receives search requests from users. For each search query the web server receives, the web server must identify relevant search results and return those results to the user who submitted the query. For some queries, the web server allocates a large amount of memory to identify relevant search results. For example, where the search results for a query include images, the web server allocates memory for each image, e.g., a server that creates map images may need to allocate an image buffer of several megabytes, and the buffer may last for several hundred milliseconds. These resource allocations may cause the server to run out of physical memory or exceed a memory quota imposed on the process by another system, and the server process may be terminated. If the server process is terminated for this reason, the server may not reply gracefully with an error message to the users who have requests in flight when it was terminated, but instead may never reply. This degrades the user experience.